//管理用户相关的状态值
//移入md5
import md5 from "js-md5";
//引入COOKIE
import {setCookie,getCookie,removeCookie} from "@/utils/support";
//引入后台接口
import { Login } from "@/api/user";
const user={
    state:{
        name:getCookie("name"),//登录后的用户的中文名   保存在 cookie
        roleid:getCookie("roleid")//1超级管理员 2 普通用户   保存在 cookie

    },
    mutations: {
     //设置 中文名   
     SET_NAME:(state,name)=>{
         state.name=name;
     },
      //设置角色id
      SET_ROLEID:(state,roleid)=>{
          state.roleid=roleid;
      }
    },
    actions: {
        //登录动作 context ={commit,state}
        LoginAC({commit},userInfo){
            //写成promise的形式
            return new Promise((resolve)=>{
                console.log(commit);
                const {username,password}=userInfo;
                console.log(username);
                //1.密码 加密, 密码不可以明文传到后台   密码：123456
                /*
                加密：  https 协议
                md5(password).substr(10,10)+0426 加盐
                */
                //console.log(md5(password + md5(password).substr(10, 10) + '0426'));
                userInfo.password=md5(password+md5(password).substr(10,10)+2014);
                 //调用后台接口
                 Login(userInfo).then(res=>{
                     if(res.status == 200){
                         //设置cookie
                         setCookie("token", res["token"], 1);
                         setCookie("name", res["name"], 1);
                         setCookie("username", res["username"], 1);
                         setCookie("roleid", res["roleid"], 1);
                         //设置 store
                         commit("SET_NAME", res["name"]);
                         commit("SET_ROLEID", res["roleid"]);
                          //a. 将成功的数据保存  ，保存到 cookie  和 vuex
                    //b.成功的提示  和 页面跳转
                      resolve(res);
                     }
                 })
            })

        },
        //退出操作
        LogoutAC({ //设置store
        commit}){
            commit("SET_NAME", "");
            commit("SET_ROLEID", "");
            removeCookie("token");
            removeCookie("name");
            removeCookie("username");
            removeCookie("roleid");
        }
    }
}
export default user;